﻿
namespace PhraseCorrector.SpellCore
{
    /// <summary>
    /// 实现 IDistance 接口的类型提供计算两个字符串之间相对距离的方法。
    /// </summary>
    public interface IDistance
    {
  
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////      
        /// <summary>
        /// 返回两个字符串之间的距离度量。
        /// </summary>
        /// <param name="string1">要比较的第一个字符串。</param>
        /// <param name="string2">要比较的另一个字符串。</param>
        /// <returns>
        /// 如果字符串相同则返回 0，否则返回一个正值，其大小随字符串差异增加而增加。
        /// </returns>
        double Distance(string string1, string string2);

        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 返回两个字符串之间的距离度量。
        /// </summary>
        /// <param name="string1">要比较的第一个字符串。</param>
        /// <param name="string2">要比较的另一个字符串。</param>
        /// <param name="maxDistance">感兴趣的最远距离。</param>
        /// <returns>
        /// 如果距离大于 maxDistance，则返回 -1；如果字符串相同则返回 0；
        /// 否则返回一个正值，其大小随字符串差异增加而增加。
        /// </returns>
        double Distance(string string1, string string2, double maxDistance);
    }
}

